<?php

/**
 * Список пользователей фронтенда
 *
 */
class User_Backend_Create_List extends Backend_Component_List
{
    
    /**
     * Описание первичного ключа таблицы.
     *
     * @var mixed
     */
    protected $_key = 'id';
    
    /**
     * Количество записей, выводимых на странице.
     *
     * @var integer
     */
    protected $_per_page = 20;

    /**
     * Наименования колонок списка.
     *
     * @var array
     */
    protected $_columns = array('name', 'role', 'email');
    
    /**
     * Наименование поля, по которому нужно упорядочивать записи.
     *
     * @var string
     */
    protected $_order = 'name';
    
    
    /**
     * Формирует запрос выборки записей страницы.
     *
     * @return  string
     */
    protected function _getQueryBody()
    {
        $query = 'SELECT SQL_CALC_FOUND_ROWS
                         `u_u`.`id`,
                         `u_u`.`name`, 
                         `s`.`title` AS `role`, 
                         `s_s`.`email`
                    FROM
                         `user_user` `u_u` 
              INNER JOIN 
                         `strategy` `s` 
                      ON 
                         `u_u`.`role` = `s`.`role`
              INNER JOIN 
                         `system_subject` `s_s`
                      ON 
                         `u_u`.`subject_id` = `s_s`.`id`
                         ' . $this->_getOrder();
        return $query;
    }
    
    /**
    * @desc Запрещаем админу удаление самого себя.
    *
    * @return  array
    */
   protected function _getDisabled() {
       return array(
           'delete' => array(
               array('id' => User_Utils::getAdminUser_UserId()),
           )
       );
   }
        
}
